| 概要 | |
|---|---|
|
ファイル: \examples\Processing\Loop\RollingAverage\rollingAverage_Loop.vad |
|
|
デフォルトプラットフォーム: imaFlex CXP-12 Quad |
|
|
簡単な説明 フレーム遅延を発生させることなく、実行中の画像ストリームに対して移動平均を実装します。 最後のN枚のモノクロ画像の平均値が計算され、結果として得られた現在の画像との差分をカラーで視覚化するために使用されます。 平均値の算出に使用される画像の枚数は128枚に設定されていますが、変更可能です。 |
|
このデザインは、移動平均がどのように機能するかを示します。 しかし、中心となる要素は、より多くのアプリケーションやマシンビジョン処理を可能にするループです。 ループがどのように機能し、どのように実装されるかを理解する上で、このサンプルは最適な出発点となります。
個々のピクセルの平均値が計算され、8ビットの入力値の範囲に正規化されます。 このために、受信した各フレームが前のフレームと加算され、受信したフレーム数で割られます。 移動平均シーケンスの長さに達すると、保存および遅延されたフレームによって合計が減算されます。 これにより、最初の画像からすでに出力画像が生成されます。
このデザインでは、2つの条件によって移動平均シーケンスの長さが定義されます。 両方の値はN_rollingと呼ばれ、同じ値に設定する必要があります。 1つは差分画像の遅延ストアプロセスを処理し、もう1つはピクセル値の正規化を処理します。
ループ処理を有効にするために、RxImageLinkおよびTxImageLinkオペレーターが使用されます。 入力画像シーケンスの正規化されていない平均の合計は、1つのループで処理されます。 後でその値を減算するために入力フレームを保存するには、2番目のループ処理が必要です。 各ループは、入力されるカメラフレームと同期している必要があります。 これにより、開始条件を満たす必要があるSYNCオペレーターが誘発されます。 開始条件自体はInsertImageによって処理され、最初の実行で単一の最小フレームが導入されます。 使用されるSYNCは、フレームの寸法を必要な値に最大化します。
平均処理では一定数のフレームを保存する必要があるため、ImageBufferMultiRoiDynオペレーターが使用されます。 最初の画像は単純に保存され、同期の目的は生成された最小フレームによって満たされます。
VAシミュレーションを使用すると、これがSYNC周辺でどのように機能するかを詳細に理解するのに役立ちます。 一般に、人工的な最小フレームのシーケンスが同期を行います。
視覚化には2つの異なる方法が実装されています。1つ目は24ビットのRGB画像を生成します:
- 平面 - コンテンツ
- RED - 現在の画像
- GREEN - 平均画像
- BLUE - 差分画像
2番目のアプローチはHSL色空間に基づおり、後に24ビットRGBに変換されます:
- 平面 - コンテンツ
- HUE / 色相角 - 差分画像(最小値が緑色)
- SATURATION - 最大に設定
- LIGHTNESS - 現在の画像
2番目のアプローチはEffectEnable = 1によって有効になります。 ダイナミックゲインファクターを使用して、すべてのHUE色角への差分Scalingを行うことができます。
サンプル「rollingAverage_Loop.vad」は、ベース構成で解像度1024x1024、1ピクセルあたり8ビットのモノクロCameraLinkカメラ向けに設計されています。

前へ

